import 'package:library4/library4.dart';
import 'package:test/test.dart';

// 自定义异常类
class ProductOutOfStockException implements Exception {
  final String productName;

  ProductOutOfStockException(this.productName);

  @override
  String toString() {
    return '产品 "$productName" 缺货.';
  }
}

// 商品类
class Product {
  final String name;
  int stock;

  Product(this.name, this.stock);

  // 购买商品的方法
  void purchase(int quantity) {
    if (quantity > stock) {
      throw ProductOutOfStockException(name);
    }
    stock -= quantity;
    print('成功购买 $quantity 个 $name. 剩余库存: $stock');
  }
}

void main() {
  // 创建一个商品实例
  var product = Product('iPhone', 5);

  try {
    // 尝试购买 3 个商品
    product.purchase(3);

    // 尝试再次购买 3 个商品，此时库存不足
    product.purchase(3);
  } on ProductOutOfStockException catch (e) {
    print('Exception caught: $e');
  }
}    